#include <algorithm>
using namespace std;
const int N=1e5+10;
int tmp[N];
void merge_sort(int q[], int l, int r)
{
    if (l>=r) return;

    int mid=l+r>>1;
    merge_sort(q, l, mid);
    merge_sort(q, mid+1, r);

    int k=0, i=l, j=mid+1;
    while (i<=mid && j<=r)
        if (q[i]<=q[j]) tmp[k++]=q[i++];
        else tmp[k++]=q[j++];

    while (i<=mid) tmp[k++]=q[i++];
    while (j<=r) tmp[k++]=q[j++];

   for(i=l, j=0; i<=r; i++, j++) q[i]=tmp[j];
}

// 逆序对数量
using namespace std;

using ll=long long;
const int N=100010;
int n;
int q[N], tmp[N];
ll merge_sort(int l, int r) {
    if (l>=r)return 0;
    int mid=(l+r)>>1;
    ll res=merge_sort(l, mid)+merge_sort(mid+1, r);
    // 归并的过程
    int k=0, i=l, j=mid+1;
    while (i<=mid && j<=r)
        if (q[i]<=q[j])tmp[k++]=q[i++];
        else {
            tmp[k++]=q[j++];
            res += mid-i+1;
        }
    //扫尾
    while (i<=mid)tmp[k++]=q[i++];
    while (j<=r)tmp[k++]=q[j++];
    //物归原主
   for(i=l, j=0; i<=r; j++, i++)q[i]=tmp[j];
    return res;
}
int main() {
    cin>>n;
   for(int i=0; i<n; i++)cin>>q[i];
    cout<<merge_sort(0, n-1)<<endl;
    return 0;
}
